package cn.zwk.service;

import cn.zwk.eval.EvaluationResult;
import cn.zwk.request.HttpResponse;
import cn.zwk.template.TemplateContext;

import java.util.Map;

/**
 * 表达式评估器接口：根据表达式与上下文对响应进行判定。
 */
public interface ExpressionEvaluator {
    /**
     * @param expression 表达式（Aviator等）
     * @param response   HTTP响应
     * @param context    额外上下文（key/query/位置信息等）
     * @param variables  扩展变量（如环境变量、配置）
     */
    EvaluationResult evaluate(String expression,
                              HttpResponse response,
                              TemplateContext context,
                              Map<String, Object> variables);
}

